import { login } from '@/api/user'
import { getToken, setToken, removeToken } from '@/utils/auth'

// 状态
const state = {
  token: getToken() // 一初始化vuex线从缓存中读取数据
}

const mutations = {
  // 设置token
  SET_TOKEN(state, token) {
    // 设置token为vuex
    state.token = token
    // 同步到缓存中
    setToken()
  },
  REMOVE_TOKEN(state) {
    state.token = null
    removeToken()
  }
}

const actions = {
  async login(context, data) {
    // 调用api接口拿到token
    const result = await login(data)
    // 如果为true 表示登录成功
    context.commit('SET_TOKEN', result)
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
